package com.shujia.day10;

public class Code04IntegerDemo {
    public static void main(String[] args) {

        /*
            基本数据类型 不是一个对象类，并不在Object子类范围内，那么对于这些基本数据类做对象操作，那么就不能实现

            比如通过对象调用其基本数据类型的一些方法 而这些在基本数据类型中不能实现

            所以需要对基本数据类型 做包装类  包装类的父类是Object 并且有对应相关的成员方法 可以使用

            基本类型 和 包装类的关系：
            byte   -> Byte
            short  -> Short
            int    -> Integer
            long   -> Long
            float  -> Float
            double -> Double
            boolean -> Boolean
            char   -> Character

         */
        int i = 10;

        Integer integer = new Integer(i);
        System.out.println(integer);

        Integer integer1 = new Integer("100");
        System.out.println(integer1);

//        Integer hello = new Integer("hello"); //  NumberFormatException 数值格式异常
//        System.out.println(hello);


        // 自动装箱
        Integer integer2 = 10;
        System.out.println(integer2);

        // Integer成员方法

//        Integer integer3 = Integer.valueOf(10);  // 通过静态方法的方式 创建当前类的对象  该写法在大数据框架原码中经常能够看到
        Integer integer4 = Integer.valueOf("100");
        System.out.println(integer4); // 打印对象时，就是调用其toString方法获取值

//        Integer integer5 = "100";

        int i1 = Integer.parseInt("100"); // parseInt可以将字符串转换成一个int类型 该方法需要记住 很常用

        Integer i2 = Integer.parseInt("100");
        int i3 = i2.intValue(); // 通过intValue可以将Integer转成int

        /*
            public static String toBinaryString(int i)
            public static String toOctalString(int i)
            public static String toHexString(int i)
         */

        String i2BinaryString = Integer.toBinaryString(i2);  // 要求传入一个int类型 但是可以通过自动拆箱 传入一个 Integer
        System.out.println(i2BinaryString);

        String i2OctalString = Integer.toOctalString(i2);
        System.out.println(i2OctalString);

        String i2HexString = Integer.toHexString(i2);
        System.out.println(i2HexString);

        /*
            public static int parseInt(String s,int radix)
         */

        int parseRes = Integer.parseInt(i2OctalString, 8);
        System.out.println(parseRes);
    }
}
